home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / applications / wp / fwmacros1.lha / UserMacros / portugu黌 / AlinharタDireita.fw < prev    next >
Encoding:
Text File  |  1994-10-03  |  1.9 KB  |  77 lines

  1. /*
  2. $AUTHOR:  Fernando Nunes e Manuel Lemos (UpperDesign@zeus.ci.ua.pt)
  3. $VER: AlinharÀDireita 1.01 (1.10.94)
  4. Descrição:  Macro  em  ARexx  para  o FinalWriter que faz o alinhamento de
  5.             vários objectos selecionados pelo objecto mais à direita.
  6. */
  7.  
  8. options results
  9.  
  10. /* obter uma lista dos objectos seleccionados */
  11. selecionados = 0
  12. FirstObject SELECTED
  13. do until result =0
  14.   selecionados = selecionados + 1
  15.   objectid.selecionados = result
  16.   NextObject objectid.selecionados SELECTED
  17. end
  18.  
  19. if selecionados > 1 then
  20. do
  21.  
  22.   OBJECTO_LINHA = 2
  23.  
  24.   /* determinar a coordenada do objecto mais à direita*/
  25.   do objecto = 1 to selecionados
  26.     GetObjectCoords objectid.objecto
  27.     coords = RESULT
  28.     PARSE VAR coords pagina esquerda cima direita baixo
  29.     GetObjectType objectid.objecto
  30.     tipo = result
  31.  
  32.     /* linhas */
  33.     if tipo = OBJECTO_LINHA then
  34.       do
  35.         if esquerda > direita then
  36.           direita = esquerda
  37.       end
  38.     else
  39.       direita = esquerda + direita
  40.     if objecto = 1 | direita > mais_a_direita then
  41.       mais_a_direita = direita
  42.   end
  43.  
  44.   /* mover os objectos para a direita */
  45.   do objecto = 1 to selecionados
  46.     GetObjectCoords objectid.objecto
  47.     coords = RESULT
  48.     PARSE VAR coords pagina esquerda cima direita baixo
  49.     GetObjectType objectid.objecto
  50.     tipo = result
  51.  
  52.     /* linhas */
  53.     if tipo = OBJECTO_LINHA then
  54.       do
  55.         if esquerda < direita then
  56.           do
  57.             esquerda = mais_a_direita - direita + esquerda
  58.             direita = mais_a_direita
  59.           end
  60.         else
  61.           do
  62.             direita = mais_a_direita - esquerda + direita
  63.             esquerda = mais_a_direita
  64.           end
  65.       end
  66.     else
  67.       esquerda = mais_a_direita - direita
  68.     SetObjectCoords objectid.objecto pagina esquerda cima direita baixo
  69.   end
  70.  
  71.   /* voltar a reselecionar todos os objectos selecionados antes */
  72.   do objecto = 1 to selecionados
  73.     SelectObject objectid.objecto MULTIPLE
  74.   end
  75.   redraw
  76. end
  77.